/**
 * 暴力匹配
 *
 * @Author: wanqian
 * @Date: 2021/3/1 1:19
 */
public class ViolenceMatchDemo {

    public static void main(String[] args) {
        // 测试暴力匹配算法
        String str1 = "硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好";
        String str2 = "尚硅谷你尚硅你";
        int index = violenceMatch(str1, str2);
        System.out.println("index=" + index);

    }

    // 暴力匹配算法实现
    public static int violenceMatch(String str1, String str2) {

        int i = 0;
        int j = 0;
        while (i < str1.length() && j < str2.length()) {
            if (str1.charAt(i) == str2.charAt(j)) {
                i++;
                j++;
            } else {
                //为向前移动了j步后发现不匹配，则回溯到起始位置的下一个继续匹配
                i = i - j + 1;
                j = 0;
            }
        }
        //匹配成功后会向后移动一位，最后越界跳出while循环
        if (j == str2.length()) {
            return i - j;
        } else {
            return -1;
        }
    }
}
